﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class ENObjetoFinal
    {
        private string final;
        private string objeto;

        private CADObjetoFinal cadObjFinal = new CADObjetoFinal();
        private String nombreTabla = "Objetos_Finales";

        public ENObjetoFinal()
        {
            final = "";
            objeto = "";
        }

        public ENObjetoFinal(ENObjetoFinal enPart)
        {
            final = enPart.final;
            objeto = enPart.objeto;
        }

        public ENObjetoFinal(string final_objfinal, string objeto_objfinal)
        {
            final = final_objfinal;
            objeto = objeto_objfinal;
        }

        public ENObjetoFinal(DataRow drObjetoFinal)
        {
            final = drObjetoFinal["nombrefinal_objfin"].ToString();
            objeto = drObjetoFinal["nombreobjeto_objfin"].ToString();
        }

        public string Final
        {
            get { return final; }
            set { final = value; }
        }

        public string Objeto
        {
            get { return objeto; }
            set { objeto = value; }
        }

        public DataSet ObtenerListaObjetosFinal()
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadObjFinal.ObtenerTablaObjetoFinal();
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerListaObjetosFinalPorFinal(String final)
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadObjFinal.ObtenerObjetosFinalPorFinal(final);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public bool ActualizarObjetosFinal(DataSet dsObjetoFinal)
        {
            bool resultado = false;

            try
            {
                resultado = cadObjFinal.ActualizarObjetosFinal(dsObjetoFinal);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        public bool GuardarObjetoFinal()
        {
            bool salida = false;

            try
            {
                DataSet dsObjetoFinal = ObtenerListaObjetosFinal();
                String[] parametros = { Final, Objeto };
                DataRow drPartida = dsObjetoFinal.Tables[nombreTabla].Rows.Find(parametros);
                drPartida["nombrefinal_objfin"] = Final;
                drPartida["nombreobjeto_objfin"] = Objeto;
                cadObjFinal.ActualizarObjetosFinal(dsObjetoFinal);
            }
            catch (Exception)
            {
                salida = false;
            }

            return salida;
        }

        public bool EliminarObjetoFinal()
        {
            bool resultado = false;

            try
            {
                DataSet dsCaminos = cadObjFinal.ObtenerTablaObjetoFinal();

                String[] parametros = { Final, Objeto };
                dsCaminos.Tables[nombreTabla].Rows.Find(parametros).Delete();

                resultado = cadObjFinal.ActualizarObjetosFinal(dsCaminos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return resultado;
        }

        public bool InsertarObjetoFinal()
        {
            bool resultado = false;

            try
            {
                DataSet dsObjetoFinal = cadObjFinal.ObtenerTablaObjetoFinal();

                DataRow dr = dsObjetoFinal.Tables[nombreTabla].NewRow();
                //dsCaminos.Tables["Caminos"].Rows.Clear();

                dr["nombrefinal_objfin"] = final.ToString();
                dr["nombreobjeto_objfin"] = objeto.ToString();
                
                dsObjetoFinal.Tables[nombreTabla].Rows.Add(dr);

                resultado = cadObjFinal.ActualizarObjetosFinal(dsObjetoFinal);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }
    }
}
